package com.ffcs.crmd.tsp.task.threadpool.api;

import com.ffcs.crmd.tsp.api.dto.task.PriorityWeight;
import com.ffcs.crmd.tsp.common.exception.TspException;

/**
 * 
 * 功能说明:线程池接口
 *
 * @author ZHONGFUHUA
 * 
 * @since 2.0.0-SNAPHSOT
 *
 */
public interface IThreadPool {
    
    /**
     * 
     * 功能说明:启动线程池
     * 
     * @throws TspException
     */
    public void start() throws TspException;
    
    /**
     * 
     * 功能说明:关闭线程池
     * @throws TspException 
     *
     */
    public void shutdown() throws TspException;
    
    /**
     * 功能说明: 获取线程池大小
     *
     * @return 线程池大小
     */
    public int getPoolSize();
    
    /**
     * 功能说明: 更新线程池大小
     *
     * @param poolSize 线程池大小
     */
    public void updatePoolSize(int poolSize);
    
    /**
     * 
     * 功能说明: 更新优先级权重
     * 
     * @param priorityWeight 优先级权重
     */
    public void updatePriority(PriorityWeight priorityWeight);
}
